package com.rgs.se.concurrent;

import java.util.HashMap;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Stream;

/**
 * @author Ren Gaoshuai
 * @ClassName Test01_ReentrantLock
 * @Description TODO
 * @date 2021-08-29 21:22
 **/
public class Test01_ReentrantLock {

    /*
    * 1.
    c=0 无锁状态
	    判断等待的队列中有无线程在等待，在使用CAS算法进行原子操作
    第二次过来的线程是不是原来的线程，
    最后那就是有锁状态，其他线程不能进去，返回false
    *
    非公平锁，那我就不用判断等待队列中的值，直接使用CAS算法操作
    * */

    public static void main(String[] args) {

        ReentrantLock lock = new ReentrantLock(true);

        try {
            lock.lock();
            int a = 10;
            //业务代码
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock();
        }


    }
}
